파일 권한 설정

✒️ 2025-05-21 10:13 내용 수정


  1. 파일 권한
    • 읽기 권한 : less, cat 등의 명령어로 표시 가능 여부
    • 쓰기 권한 : vigedit과 같은 에디터로 파일을 수정할 수 있는지 여부
    • 실행 권한 : 명령어로 파일을 실행할 수 있는지 여부
  2. 디렉터리 권한
    • 읽기 권한 : 디렉터리 참조 가능 여부
    • 쓰기 권한 : 디렉터리 내부의 파일이나 디렉터리를 작성할 수 있는지 여부
    • 실행 권한 : 해당 디렉터리로 이동 가능 여부
    • 일반적인 디렉터리 권한은 755이다.

특수 접근 권한

종류 설명
setuid(4) 해당 파일을 실행하면 파일 실행자의 권한이 아닌 파일 소유자의 권한으로 파일 실행
파일을 실행하는 순간에만 소유자의 권한을 빌려오는 것
설정 시 ls -l에서 사용자 권한에 x 대신 s로 표기됨
setgid(2) 해당 파일을 실행하면 파일 실행자의 권한이 아닌 파일 소유 그룹의 권한으로 파일 실행
설정 시 ls -l에서 그룹 권한에 x 대신 s로 표기됨
sticky bit(1) 디렉터리에 설정. 스티키 비트 설정 시 해당 디렉터리는 누구나 파일 생성 가능
파일이나 디렉터리 생성 시 해당 파일과 디렉터리는 소유자/관리자 외의 사용자들이 변경할 수 없음
설정 시 ls -l의 다른 사용자 권한에 x 대신 t로 표기됨

파일 및 디렉터리 권한 변경

명령어 옵션 설명
chmod 권한 파일/디렉터리 권한 부여
r 읽기 권한, bit 4
w 쓰기 권한, bit 2
x 실행 권한, bit 1 ,스크립트 파일을 생성한 후에는 반드시 실행 권한을 부여해야 한다.
+ or - +는 권한 추가, -는 권한 해제
umask 사용자 파일 생성 마스크를 모드 확인
umask 권한 사용자 파일 생성 마스크를 모드를 권한으로 설정
-S 현재 값을 심볼릭으로 표시

chmod 작성법

  1. 문자 표현식
    • [ugoa] : u(user, 파일 소유자), g(group), o(others), a(all)
    • rwxs : r(read), w(write), x(execute), s(setuid, setgid, sticky bit)
chmod [ugoa][+-][rwxs] 파일이름
  1. 숫자 표현식
    • 숫자는 순서대로 user권한(소유자), group권한, 다른 사용자(others)의 권한을 나타낸다.
    • 3자리 수로 작성 시 특수 권한은 0으로 설정되며, 4자리 수로 작성 시 맨 앞자리는 특수 권한이다.
    • ex) 777 : 소유자에 모든 권한, group에 모든 권한, 다른 사용자에게 모든 권한을 준다.
    • ex) 700 : 소유자에게 모든 권한, group과 다른 사용자에겐 아무 권한을 주지 않는다.
chmod 0777 파일이름 

umask 작성법

명령어 8진법 숫자 마스크의 이진값 마스크의 부정 논리 AND
0 000 111 rwx
1 001 110 rw-
2 010 101 r-x
3 011 100 r--
4 100 011 -wx
5 101 010 -w-
6 110 001 --x
7 111 000 ---

ex) umask 0022

대상 숫자 마스크 이진값 마스크 부정 논리 AND
사용자 0 000 111 rwx
그룹 2 010 101 r-x
다른 사용자 2 010 101 r-x

umask.png

ex) umask 0022

대상 숫자 변환 논리 AND
사용자 0 7 - 0 = 7 rwx (4+2+1)
그룹 2 7 - 2 = 5 r-x (4+1)
다른 사용자 2 7 - 2 = 5 r-x (4+1)

소유자 변경

명령어 옵션 설명
# chown 사용자 파일/디렉터리 파일이나 디렉터리 소유자를 변경
-R 하위 디렉터리의 소유자도 모두 변경
# chgrp 사용자:그룹 파일/디렉터리 파일이나 디렉터리 소속 그룹을 그룹으로 변경(사용자가 해당 그룹에 속해있을 때만 가능)
-R 하위 디렉터리의 소유자도 모두 변경